home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / RIncludes / PictUtils.r < prev    next >
Encoding:
Text File  |  1997-08-12  |  52.9 KB  |  1,616 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        PictUtils.r
  3.  
  4.      Contains:    Picture Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __PICTUTILS_R__
  20. #define __PICTUTILS_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26.  
  27. /*----------------------------PICT • Quickdraw Picture----------------------------------*/
  28. /*
  29.     PICT_RezTemplateVersion:
  30.         0 - PICT opcodes as hex values                 <-- default
  31.         1 - PICT opcodes dissasembled         
  32.         2 - PICT opcodes dissasembled supports extended HeaderOp        
  33. */
  34. #ifndef __PICT_R__
  35. #define __PICT_R__
  36.  
  37. #ifndef PICT_RezTemplateVersion
  38.     #ifdef oldPICTCompatible                        /* grandfather in use of “oldPICTCompatible” */
  39.         #if oldPICTCompatible
  40.             #define PICT_RezTemplateVersion 1
  41.         #else
  42.             #define PICT_RezTemplateVersion 2
  43.         #endif
  44.     #else
  45.         #define PICT_RezTemplateVersion 1
  46.     #endif
  47. #endif
  48.  
  49. type 'PICT' {
  50. #if PICT_RezTemplateVersion == 0
  51.     unsigned integer;                                        /* Length                */
  52.     rect;                                                    /* Frame                */
  53.     hex string;                                             /* Data                 */
  54. #else
  55.     startOfPict:
  56.         unsigned integer = (endOfPict - startOfPict) >> 3;
  57.         Rect;                                    /* Bounds of picture */
  58.         switch {
  59.             case VersionOne:
  60.                 key integer = $1101;
  61.                 array OpCodes {
  62.                     switch {
  63.                         case NOP:
  64.                             key byte = $00;
  65.  
  66.                         case ClipRgn:
  67.                             key byte = $01;
  68.     ClipRgnStart:            integer = (ClipRgnEnd[$$ArrayIndex(OpCodes)] - ClipRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  69.                             Rect;                /* region’s enclosing rect */
  70.                             hex string [$$Word(ClipRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  71.     ClipRgnEnd:
  72.                         case BkPat:
  73.                             key byte = $02;
  74.                             hex string [8];
  75.  
  76.                         case TxFont:
  77.                             key byte = $03;
  78.                             integer;            /* font */
  79.  
  80.                         case TxFace:
  81.                             key byte = $04;
  82.                             unsigned hex byte;    /* text face */
  83.  
  84.                         case TxMode:
  85.                             key byte = $05;
  86.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  87.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  88.                                         patCopy, patOr, patXor, patBic,
  89.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  90.                         case SpExtra:
  91.                             key byte = $06;
  92.                             unsigned hex longint;
  93.  
  94.                         case PnSize:
  95.                             key byte = $07;
  96.                             Point;
  97.  
  98.                         case PnMode:
  99.                             key byte = $08;
  100.                             unsigned hex integer;
  101.  
  102.                         case PnPat:
  103.                             key byte = $09;
  104.                             hex string [8];
  105.  
  106.                         case ThePat:
  107.                             key byte = $0A;
  108.                             hex string [8];
  109.  
  110.                         case OvSize:
  111.                             key byte = $0B;
  112.                             Point;
  113.  
  114.                         case Origin:
  115.                             key byte = $0C;
  116.                             integer;            /* dh */
  117.                             integer;            /* dv */
  118.  
  119.                         case TxSize:
  120.                             key byte = $0D;
  121.                             integer;
  122.  
  123.                         case FgColor:
  124.                             key byte = $0E;
  125.                             longint;
  126.  
  127.                         case BkColor:
  128.                             key byte = $0F;
  129.                             longint;
  130.  
  131.                         case TxRatio:
  132.                             key byte = $10;
  133.                             Point;                /* numer */
  134.                             Point;                /* denom */
  135.  
  136.                         case PicVersion:
  137.                             key byte = $11;
  138.                             byte;
  139.  
  140.                         case Line:
  141.                             key byte = $20;
  142.                             Point;                /* pnLoc */
  143.                             Point;                /* newPt */
  144.  
  145.                         case LineFrom:
  146.                             key byte = $21;
  147.                             Point;                /* newPt */
  148.  
  149.                         case ShortLine:
  150.                             key byte = $22;
  151.                             Point;                /* pnLoc */
  152.                             byte;                /* dh */
  153.                             byte;                /* dv */
  154.  
  155.                         case ShortLineFrom:
  156.                             key byte = $23;
  157.                             byte;                /* dh */
  158.                             byte;                /* dv */
  159.  
  160.                         case LongText:
  161.                             key byte = $28;
  162.                             Point;                /* txLoc */
  163.                             pstring;
  164.  
  165.                         case dhText:
  166.                             key byte = $29;
  167.                             byte;                /* dh */
  168.                             pstring;
  169.  
  170.                         case dvText:
  171.                             key byte = $2A;
  172.                             byte;                /* dvh */
  173.                             pstring;
  174.  
  175.                         case dhdvText:
  176.                             key byte = $2B;
  177.                             byte;                /* dh */
  178.                             byte;                /* dv */
  179.                             pstring;
  180.  
  181.                         case FrameRect:
  182.                             key byte = $30;
  183.                             Rect;
  184.  
  185.                         case PaintRect:
  186.                             key byte = $31;
  187.                             Rect;
  188.                         case EraseRect:
  189.                             key byte = $32;
  190.                             Rect;
  191.  
  192.                         case InvertRect:
  193.                             key byte = $33;
  194.                             Rect;
  195.  
  196.                         case FillRect:
  197.                             key byte = $34;
  198.                             Rect;
  199.  
  200.                         case FrameSameRect:
  201.                             key byte = $38;
  202.  
  203.                         case PaintSameRect:
  204.                             key byte = $39;
  205.  
  206.                         case EraseSameRect:
  207.                             key byte = $3A;
  208.  
  209.                         case InvertSameRect:
  210.                             key byte = $3B;
  211.  
  212.                         case FillSameRect:
  213.                             key byte = $3C;
  214.  
  215.                         case FrameRRect:
  216.                             key byte = $40;
  217.                             Rect;
  218.  
  219.                         case PaintRRect:
  220.                             key byte = $41;
  221.                             Rect;
  222.  
  223.                         case EraseRRect:
  224.                             key byte = $42;
  225.                             Rect;
  226.  
  227.                         case InvertRRect:
  228.                             key byte = $43;
  229.                             Rect;
  230.  
  231.                         case FillRRect:
  232.                             key byte = $44;
  233.                             Rect;
  234.  
  235.                         case FrameSameRRect:
  236.                             key byte = $48;
  237.  
  238.                         case PaintSameRRect:
  239.                             key byte = $49;
  240.  
  241.                         case EraseSameRRect:
  242.                             key byte = $4A;
  243.  
  244.                         case InvertSameRRect:
  245.                             key byte = $4B;
  246.  
  247.                         case FillSameRRect:
  248.                             key byte = $4C;
  249.  
  250.                         case FrameOval:
  251.                             key byte = $50;
  252.                             Rect;
  253.  
  254.                         case PaintOval:
  255.                             key byte = $51;
  256.                             Rect;
  257.  
  258.                         case EraseOval:
  259.                             key byte = $52;
  260.                             Rect;
  261.  
  262.                         case InvertOval:
  263.                             key byte = $53;
  264.                             Rect;
  265.  
  266.                         case FillOval:
  267.                             key byte = $54;
  268.                             Rect;
  269.  
  270.                         case FrameSameOval:
  271.                             key byte = $58;
  272.  
  273.                         case PaintSameOval:
  274.                             key byte = $59;
  275.  
  276.                         case EraseSameOval:
  277.                             key byte = $5A;
  278.  
  279.                         case InvertSameOval:
  280.                             key byte = $5B;
  281.  
  282.                         case FillSameOval:
  283.                             key byte = $5C;
  284.                         case FrameArc:
  285.                             key byte = $60;
  286.                             Rect;
  287.                             integer;                /* startAngle */
  288.                             integer;                /* arcAngle */
  289.  
  290.                         case PaintArc:
  291.                             key byte = $61;
  292.                             Rect;
  293.                             integer;                /* startAngle */
  294.                             integer;                /* arcAngle */
  295.  
  296.                         case EraseArc:
  297.                             key byte = $62;
  298.                             Rect;
  299.                             integer;                /* startAngle */
  300.                             integer;                /* arcAngle */
  301.  
  302.                         case InvertArc:
  303.                             key byte = $63;
  304.                             Rect;
  305.                             integer;                /* startAngle */
  306.                             integer;                /* arcAngle */
  307.  
  308.                         case FillArc:
  309.                             key byte = $64;
  310.                             Rect;
  311.                             integer;                /* startAngle */
  312.                             integer;                /* arcAngle */
  313.  
  314.                         case FrameSameArc:
  315.                             key byte = $68;
  316.                             integer;                /* startAngle */
  317.                             integer;                /* arcAngle */
  318.  
  319.                         case PaintSameArc:
  320.                             key byte = $69;
  321.                             integer;                /* startAngle */
  322.                             integer;                /* arcAngle */
  323.  
  324.                         case EraseSameArc:
  325.                             key byte = $6A;
  326.                             integer;                /* startAngle */
  327.                             integer;                /* arcAngle */
  328.  
  329.                         case InvertSameArc:
  330.                             key byte = $6B;
  331.                             integer;                /* startAngle */
  332.                             integer;                /* arcAngle */
  333.  
  334.                         case FillSameArc:
  335.                             key byte = $6C;
  336.                             integer;                /* startAngle */
  337.                             integer;                /* arcAngle */
  338.  
  339.                         case FramePoly:
  340.                             key byte = $70;
  341.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  342.                             Rect;                    /* enclosing rectangle */
  343.                             wide array PolyPoints { Point; };
  344.                         case PaintPoly:
  345.                             key byte = $71;
  346.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  347.                             Rect;                    /* enclosing rectangle */
  348.                             wide array PolyPoints { Point; };
  349.  
  350.                         case ErasePoly:
  351.                             key byte = $72;
  352.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  353.                             Rect;                    /* enclosing rectangle */
  354.                             wide array PolyPoints { Point; };
  355.  
  356.                         case InvertPoly:
  357.                             key byte = $73;
  358.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  359.                             Rect;                    /* enclosing rectangle */
  360.                             wide array PolyPoints { Point; };
  361.  
  362.                         case FillPoly:
  363.                             key byte = $74;
  364.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  365.                             Rect;                    /* enclosing rectangle */
  366.                             wide array PolyPoints { Point; };
  367.  
  368.                         case FrameSamePoly:
  369.                             key byte = $78;
  370.  
  371.                         case PaintSamePoly:
  372.                             key byte = $79;
  373.  
  374.                         case EraseSamePoly:
  375.                             key byte = $7A;
  376.  
  377.                         case InvertSamePoly:
  378.                             key byte = $7B;
  379.  
  380.                         case FillSamePoly:
  381.                             key byte = $7C;
  382.                         case FrameRgn:
  383.                             key byte = $80;
  384.     FrameRgnStart:            integer = (FrameRgnEnd[$$ArrayIndex(OpCodes)] - FrameRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  385.                             Rect;                /* region’s enclosing rect */
  386.                             hex string [$$Word(FrameRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  387.     FrameRgnEnd:
  388.                         case PaintRgn:
  389.                             key byte = $81;
  390.     PaintRgnStart:            integer = (PaintRgnEnd[$$ArrayIndex(OpCodes)] - PaintRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  391.                             Rect;                /* region’s enclosing rect */
  392.                             hex string [$$Word(PaintRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  393.     PaintRgnEnd:
  394.                         case EraseRgn:
  395.                             key byte = $82;
  396.     EraseRgnStart:            integer = (EraseRgnEnd[$$ArrayIndex(OpCodes)] - EraseRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  397.                             Rect;                /* region’s enclosing rect */
  398.                             hex string [$$Word(EraseRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  399.     EraseRgnEnd:
  400.                         case InvertRgn:
  401.                             key byte = $83;
  402.     InvertRgnStart:            integer = (InvertRgnEnd[$$ArrayIndex(OpCodes)] - InvertRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  403.                             Rect;                /* region’s enclosing rect */
  404.                             hex string [$$Word(InvertRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  405.     InvertRgnEnd:
  406.                         case FillRgn:
  407.                             key byte = $84;
  408.     FillRgnStart:            integer = (FillRgnEnd[$$ArrayIndex(OpCodes)] - FillRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  409.                             Rect;                /* region’s enclosing rect */
  410.                             hex string [$$Word(FillRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  411.     FillRgnEnd:
  412.                         case FrameSameRgn:
  413.                             key byte = $88;
  414.  
  415.                         case PaintSameRgn:
  416.                             key byte = $89;
  417.  
  418.                         case EraseSameRgn:
  419.                             key byte = $8A;
  420.  
  421.                         case InvertSameRgn:
  422.                             key byte = $8B;
  423.  
  424.                         case FillSameRgn:
  425.                             key byte = $8C;
  426.  
  427.                         case BitsRect:
  428.                             key byte = $90;
  429.     BitsRectRowBytes:        integer;                    /* row bytes */
  430.     BitsRectBounds:            Rect;                        /* bounds */
  431.                             Rect;                        /* srcRect */
  432.                             Rect;                        /* destRect */
  433.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  434.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  435.                                         patCopy, patOr, patXor, patBic,
  436.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  437.                             hex string [($$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  438.                                         - $$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],0,16))
  439.                                         * $$Word(BitsRectRowBytes[$$ArrayIndex(OpCodes)])];
  440.  
  441.                         case BitsRgn:
  442.                             key byte = $91;
  443.     BitsRgnRowBytes:        integer;                    /* row bytes */
  444.     BitsRgnBounds:            Rect;                        /* bounds */
  445.                             Rect;                        /* srcRect */
  446.                             Rect;                        /* destRect */
  447.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  448.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  449.                                         patCopy, patOr, patXor, patBic,
  450.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  451.     BitsRgnStart:            integer = (BitsRgnEnd[$$ArrayIndex(OpCodes)] - BitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  452.                             Rect;                /* region’s enclosing rect */
  453.                             hex string [$$Word(BitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  454.     BitsRgnEnd:
  455.                             hex string [($$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  456.                                         - $$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],0,16))
  457.                                         * $$Word(BitsRgnRowBytes[$$ArrayIndex(OpCodes)])];
  458.                         case PackBitsRect:
  459.                             key byte = $98;
  460.     PackBitsRectRowBytes:    integer;                    /* row bytes */
  461.     PackBitsRectBounds:        Rect;                        /* bounds */
  462.                             Rect;                        /* srcRect */
  463.                             Rect;                        /* destRect */
  464.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  465.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  466.                                         patCopy, patOr, patXor, patBic,
  467.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  468.     PackBitsBits:            hex string [$$PackedSize(PackBitsBits[$$ArrayIndex(OpCodes)],
  469.                                         $$Word(PackBitsRectRowBytes[$$ArrayIndex(OpCodes)]),
  470.                                         ($$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  471.                                         - $$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],0,16)))];
  472.                         case PackBitsRgn:
  473.                             key byte = $99;
  474.     PackBitsRgnRowBytes:    integer;                    /* row bytes */
  475.     PackBitsRgnBounds:        Rect;                        /* bounds */
  476.                             Rect;                        /* srcRect */
  477.                             Rect;                        /* destRect */
  478.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  479.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  480.                                         patCopy, patOr, patXor, patBic,
  481.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  482.     PackBitsRgnStart:        integer = (PackBitsRgnEnd[$$ArrayIndex(OpCodes)] - PackBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  483.                             Rect;                /* region’s enclosing rect */
  484.                             hex string [$$Word(PackBitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  485.     PackBitsRgnEnd:            hex string [$$PackedSize(PackBitsRgnEnd[$$ArrayIndex(OpCodes)],
  486.                                         $$Word(PackBitsRgnRowBytes[$$ArrayIndex(OpCodes)]),
  487.                                         ($$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  488.                                         - $$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],0,16)))];
  489.  
  490.                         case ShortComment:
  491.                             key byte = $A0;
  492.                             integer;            /* kind */
  493.  
  494.                         case LongComment:
  495.                             key byte = $A1;
  496.                             integer;            /* kind */
  497.     LongCommentStart:        integer = (LongCommentEnd[$$ArrayIndex(OpCodes)] - LongCommentStart[$$ArrayIndex(OpCodes)] - 16) >> 3;
  498.                             hex string [$$Word(LongCommentStart[$$ArrayIndex(OpCodes)])];
  499.     LongCommentEnd:
  500.                     };
  501.                 };
  502.                 byte = $FF;     /* End of picture */
  503.             case VersionTwo:
  504.                 key longint = $001102ff;        /* Version op + version */
  505.                 array OpCodes {
  506.                     switch {
  507.                         case Clip:
  508.                             key integer = $0001;
  509.     ClipStart:                integer = (ClipEnd[$$ArrayIndex(OpCodes)] - ClipStart[$$ArrayIndex(OpCodes)]) >> 3;
  510.                             Rect;                /* region’s enclosing rect */
  511.                             hex string [$$Word(ClipStart[$$ArrayIndex(OpCodes)]) - 10];
  512.     ClipEnd:
  513.                         case BkPat:
  514.                             key integer = $0002;
  515.                             hex string [8];
  516.  
  517.                         case TxFont:
  518.                             key integer = $0003;
  519.                             integer;            /* font */
  520.  
  521.                         case TxFace:
  522.                             key integer = $0004;
  523.                             unsigned hex byte;    /* text face */
  524.  
  525.                         case TxMode:
  526.                             key integer = $0005;
  527.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  528.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  529.                                         patCopy, patOr, patXor, patBic,
  530.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  531.  
  532.                         case SpExtra:
  533.                             key integer = $0006;
  534.                             unsigned hex longint;
  535.  
  536.                         case PnSize:
  537.                             key integer = $0007;
  538.                             Point;
  539.  
  540.                         case PnMode:
  541.                             key integer = $0008;
  542.                             unsigned hex integer;
  543.  
  544.                         case PnPat:
  545.                             key integer = $0009;
  546.                             hex string [8];
  547.  
  548.                         case FillPat:
  549.                             key integer = $000A;
  550.                             hex string [8];
  551.  
  552.                         case OvSize:
  553.                             key integer = $000B;
  554.                             Point;
  555.  
  556.                         case Origin:
  557.                             key integer = $000C;
  558.                             integer;            /* dh */
  559.                             integer;            /* dv */
  560.  
  561.                         case TxSize:
  562.                             key integer = $000D;
  563.                             integer;
  564.  
  565.                         case FgColor:
  566.                             key integer = $000E;
  567.                             longint;
  568.  
  569.                         case BkColor:
  570.                             key integer = $000F;
  571.                             longint;
  572.  
  573.                         case TxRatio:
  574.                             key integer = $0010;
  575.                             Point;                /* numer */
  576.                             Point;                /* denom */
  577.  
  578.                         case Version:
  579.                             key integer = $0011;
  580.                             byte;
  581.                         case BkPixPat:
  582.                             key integer = $0012;
  583.                             switch {
  584.                                 case newPattern:
  585.                                     key integer = 1;
  586.                                     hex string [8];            /* old-style pattern    */
  587.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  588.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  589.     BkPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  590.     BkPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  591.                                     integer;                                                /* pixMap vers number    */
  592.                                     integer    unpacked;                                        /* Packing format        */
  593.                                     unsigned longint;                                        /* Size of pixel data    */
  594.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  595.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  596.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  597.                                     integer;                                                /* # bits in pixel        */
  598.                                     integer;                                                /* # components in pixel*/
  599.                                     integer;                                                /* # bits per field        */
  600.                                     unsigned longint;                                        /* Offset to next plane    */
  601.                                     unsigned longint;                                        /* Offset to color table*/
  602.                                     fill long;                                                /* Reserved                */
  603.                                     /* Color Table */
  604.                                     unsigned hex longint;                                    /* ctSeed                */
  605.                                     integer;                                                /* ctFlags                */
  606.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  607.                                     wide array ColorSpec {
  608.                                             integer;                                        /* value                */
  609.                                             unsigned integer;                                /* RGB:    red                */
  610.                                             unsigned integer;                                /*        green            */
  611.                                             unsigned integer;                                /*        blue            */
  612.                                     };
  613.                                     /* If rowBytes < 8 then data is unpacked,
  614.                                        if >= 8, then data is packed */
  615.     BkPixPatBits:                    hex string [($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  616.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  617.                                                 ($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  618.                                                 $$PackedSize(BkPixPatBits[$$ArrayIndex(OpCodes)],
  619.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  620.                                                 ($$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  621.                                                 - $$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  622.  
  623.                                 case ditherPattern:
  624.                                     key integer = 2;
  625.                                     hex string [8];            /* old-style pattern    */
  626.                                     unsigned integer;        /* RGB:    red                */
  627.                                     unsigned integer;        /*        green            */
  628.                                     unsigned integer;        /*        blue            */
  629.                             };
  630.                         case PnPixPat:
  631.                             key integer = $0013;
  632.                             switch {
  633.                                 case newPattern:
  634.                                     key integer = 1;
  635.                                     hex string [8];            /* old-style pattern    */
  636.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  637.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  638.     PnPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  639.     PnPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  640.                                     integer;                                                /* pixMap vers number    */
  641.                                     integer    unpacked;                                        /* Packing format        */
  642.                                     unsigned longint;                                        /* Size of pixel data    */
  643.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  644.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  645.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  646.                                     integer;                                                /* # bits in pixel        */
  647.                                     integer;                                                /* # components in pixel*/
  648.                                     integer;                                                /* # bits per field        */
  649.                                     unsigned longint;                                        /* Offset to next plane    */
  650.                                     unsigned longint;                                        /* Offset to color table*/
  651.                                     fill long;                                                /* Reserved                */
  652.                                     /* Color Table */
  653.                                     unsigned hex longint;                                    /* ctSeed                */
  654.                                     integer;                                                /* ctFlags                */
  655.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  656.                                     wide array ColorSpec {
  657.                                             integer;                                        /* value                */
  658.                                             unsigned integer;                                /* RGB:    red                */
  659.                                             unsigned integer;                                /*        green            */
  660.                                             unsigned integer;                                /*        blue            */
  661.                                     };
  662.                                     /* If rowBytes < 8 then data is unpacked,
  663.                                        if >= 8, then data is packed */
  664.     PnPixPatBits:                    hex string [($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  665.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  666.                                                 ($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  667.                                                 $$PackedSize(PnPixPatBits[$$ArrayIndex(OpCodes)],
  668.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  669.                                                 ($$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  670.                                                 - $$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  671.                                 case ditherPattern:
  672.                                     key integer = 2;
  673.                                     hex string [8];            /* old-style pattern    */
  674.                                     unsigned integer;        /* RGB:    red                */
  675.                                     unsigned integer;        /*        green            */
  676.                                     unsigned integer;        /*        blue            */
  677.                             };
  678.  
  679.                         case FillPixPat:
  680.                             key integer = $0014;
  681.                             switch {
  682.                                 case newPattern:
  683.                                     key integer = 1;
  684.                                     hex string [8];            /* old-style pattern    */
  685.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  686.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  687.     FillPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  688.     FillPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  689.                                     integer;                                                /* pixMap vers number    */
  690.                                     integer    unpacked;                                        /* Packing format        */
  691.                                     unsigned longint;                                        /* Size of pixel data    */
  692.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  693.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  694.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  695.                                     integer;                                                /* # bits in pixel        */
  696.                                     integer;                                                /* # components in pixel*/
  697.                                     integer;                                                /* # bits per field        */
  698.                                     unsigned longint;                                        /* Offset to next plane    */
  699.                                     unsigned longint;                                        /* Offset to color table*/
  700.                                     fill long;                                                /* Reserved                */
  701.                                     /* Color Table */
  702.                                     unsigned hex longint;                                    /* ctSeed                */
  703.                                     integer;                                                /* ctFlags                */
  704.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  705.                                     wide array ColorSpec {
  706.                                             integer;                                        /* value                */
  707.                                             unsigned integer;                                /* RGB:    red                */
  708.                                             unsigned integer;                                /*        green            */
  709.                                             unsigned integer;                                /*        blue            */
  710.                                     };
  711.                                     /* If rowBytes < 8 then data is unpacked,
  712.                                        if >= 8, then data is packed */
  713.     FillPixPatBits:                    hex string [($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  714.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  715.                                                 ($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  716.                                                 $$PackedSize(FillPixPatBits[$$ArrayIndex(OpCodes)],
  717.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  718.                                                 ($$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  719.                                                 - $$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  720.                                 case ditherPattern:
  721.                                     key integer = 2;
  722.                                     hex string [8];            /* old-style pattern    */
  723.                                     unsigned integer;        /* RGB:    red                */
  724.                                     unsigned integer;        /*        green            */
  725.                                     unsigned integer;        /*        blue            */
  726.                             };
  727.  
  728.                         case PnLocHFrac:
  729.                             key integer = $0015;
  730.                             unsigned hex integer;
  731.  
  732.                         case ChExtra:
  733.                             key integer = $0016;
  734.                             integer;                        /* extra for each character */
  735.  
  736.                         case AppleReserved0017:
  737.                             key integer = $0017;
  738.  
  739.                         case AppleReserved0018:
  740.                             key integer = $0018;
  741.  
  742.                         case AppleReserved0019:
  743.                             key integer = $0019;
  744.  
  745.                         case RGBFgCol:
  746.                             key integer = $001A;
  747.                             unsigned integer;        /* RGB:    red                */
  748.                             unsigned integer;        /*        green            */
  749.                             unsigned integer;        /*        blue            */
  750.  
  751.                         case RGBBkCol:
  752.                             key integer = $001B;
  753.                             unsigned integer;        /* RGB:    red                */
  754.                             unsigned integer;        /*        green            */
  755.                             unsigned integer;        /*        blue            */
  756.  
  757.                         case HiliteMode:
  758.                             key integer = $001C;
  759.  
  760.                         case HiliteColor:
  761.                             key integer = $001D;
  762.                             unsigned integer;        /* RGB:    red                */
  763.                             unsigned integer;        /*        green            */
  764.                             unsigned integer;        /*        blue            */
  765.  
  766.                         case DefHilite:
  767.                             key integer = $001E;
  768.  
  769.                         case OpColor:
  770.                             key integer = $001F;
  771.                             unsigned integer;        /* RGB:    red                */
  772.                             unsigned integer;        /*        green            */
  773.                             unsigned integer;        /*        blue            */
  774.  
  775.                         case Line:
  776.                             key integer = $0020;
  777.                             Point;                    /* pnLoc */
  778.                             Point;                    /* newPt */
  779.  
  780.                         case LineFrom:
  781.                             key integer = $0021;
  782.                             Point;                    /* newPt */
  783.  
  784.                         case ShortLine:
  785.                             key integer = $0022;
  786.                             Point;                    /* pnLoc */
  787.                             byte;                    /* dh */
  788.                             byte;                    /* dv */
  789.  
  790.                         case ShortLineFrom:
  791.                             key integer = $0023;
  792.                             byte;                    /* dh */
  793.                             byte;                    /* dv */
  794.                         case AppleReserved0024:
  795.                             key integer = $0024;
  796.                 AR24:        unsigned integer = (AR24End[$$ArrayIndex(Opcodes)] - AR24[$$ArrayIndex(Opcodes)]) / 8 - 2;
  797.                             hex string [$$Word(AR24[$$ArrayIndex(Opcodes)])];
  798.                 AR24End:
  799.  
  800.                         case AppleReserved0025:
  801.                             key integer = $0025;
  802.                 AR25:        unsigned integer = (AR25End[$$ArrayIndex(Opcodes)] - AR25[$$ArrayIndex(Opcodes)]) / 8 - 2;
  803.                             hex string [$$Word(AR25[$$ArrayIndex(Opcodes)])];
  804.                 AR25End:
  805.  
  806.                         case AppleReserved0026:
  807.                             key integer = $0026;
  808.                 AR26:        unsigned integer = (AR26End[$$ArrayIndex(Opcodes)] - AR26[$$ArrayIndex(Opcodes)]) / 8 - 2;
  809.                             hex string [$$Word(AR26[$$ArrayIndex(Opcodes)])];
  810.                 AR26End:
  811.  
  812.                         case AppleReserved0027:
  813.                             key integer = $0027;
  814.                 AR27:        unsigned integer = (AR27End[$$ArrayIndex(Opcodes)] - AR27[$$ArrayIndex(Opcodes)]) / 8 - 2;
  815.                             hex string [$$Word(AR27[$$ArrayIndex(Opcodes)])];
  816.                 AR27End:
  817.  
  818.                         case LongText:
  819.                             key integer = $0028;
  820.                             Point;                /* TxLoc */
  821.                             pstring;            /* text */
  822.  
  823.                         case DHText:
  824.                             key integer = $0029;
  825.                             byte;                /* dh */
  826.                             pstring;            /* text */
  827.  
  828.                         case DVText:
  829.                             key integer = $002A;
  830.                             byte;                /* dv */
  831.                             pstring;            /* text */
  832.  
  833.                         case DHDVText:
  834.                             key integer = $002B;
  835.                             byte;                /* dh */
  836.                             byte;                /* dv */
  837.                             pstring;            /* text */
  838.  
  839.                         case FontName:
  840.                             key integer = $002C;
  841.                 FontNameBegin:    unsigned integer = (FontNameEnd[$$ArrayIndex(Opcodes)] - FontNameBegin[$$ArrayIndex(Opcodes)]) / 8 - 2;
  842.                             integer;            /* Old font ID */
  843.                             pstring;            /* Font name */
  844.                 FontNameEnd:
  845.  
  846.                         case LineJustify:
  847.                             key integer = $002D;
  848.                             unsigned integer = 8;
  849.                             longint;            /* Inter-character spacing */
  850.                             longint;            /* Total extra space for justification */
  851.  
  852.                         case AppleReserved002E:
  853.                             key integer = $002E;
  854.                 AR2E:        unsigned integer = (AR2EEnd[$$ArrayIndex(Opcodes)] - AR2E[$$ArrayIndex(Opcodes)]) / 8 - 2;
  855.                             hex string [$$Word(AR2E[$$ArrayIndex(Opcodes)])];
  856.                 AR2EEnd:
  857.  
  858.                         case AppleReserved002F:
  859.                             key integer = $002F;
  860.                 AR2F:        unsigned integer = (AR2FEnd[$$ArrayIndex(Opcodes)] - AR2F[$$ArrayIndex(Opcodes)]) / 8 - 2;
  861.                             hex string [$$Word(AR2F[$$ArrayIndex(Opcodes)])];
  862.                 AR2FEnd:
  863.  
  864.                         case FrameRect:
  865.                             key integer = $0030;
  866.                             Rect;
  867.  
  868.                         case PaintRect:
  869.                             key integer = $0031;
  870.                             Rect;
  871.  
  872.                         case EraseRect:
  873.                             key integer = $0032;
  874.                             Rect;
  875.  
  876.                         case InvertRect:
  877.                             key integer = $0033;
  878.                             Rect;
  879.  
  880.                         case FillRect:
  881.                             key integer = $0034;
  882.                             Rect;
  883.  
  884.                         case AppleReserved0035:
  885.                             key integer = $0035;
  886.                             Rect;
  887.  
  888.                         case AppleReserved0036:
  889.                             key integer = $0036;
  890.                             Rect;
  891.  
  892.                         case AppleReserved0037:
  893.                             key integer = $0037;
  894.                             Rect;
  895.                         case FrameSameRect:
  896.                             key integer = $0038;
  897.  
  898.                         case PaintSameRect:
  899.                             key integer = $0039;
  900.  
  901.                         case EraseSameRect:
  902.                             key integer = $003A;
  903.  
  904.                         case InvertSameRect:
  905.                             key integer = $003B;
  906.  
  907.                         case FillSameRect:
  908.                             key integer = $003C;
  909.  
  910.                         case AppleReserved003D:
  911.                             key integer = $003D;
  912.  
  913.                         case AppleReserved003E:
  914.                             key integer = $003E;
  915.  
  916.                         case AppleReserved003F:
  917.                             key integer = $003F;
  918.  
  919.                         case FrameRRect:
  920.                             key integer = $0040;
  921.                             Rect;
  922.  
  923.                         case PaintRRect:
  924.                             key integer = $0041;
  925.                             Rect;
  926.  
  927.                         case EraseRRect:
  928.                             key integer = $0042;
  929.                             Rect;
  930.  
  931.                         case InvertRRect:
  932.                             key integer = $0043;
  933.                             Rect;
  934.  
  935.                         case FillRRect:
  936.                             key integer = $0044;
  937.                             Rect;
  938.  
  939.                         case AppleReserved0045:
  940.                             key integer = $0045;
  941.                             Rect;
  942.  
  943.                         case AppleReserved0046:
  944.                             key integer = $0046;
  945.                             Rect;
  946.  
  947.                         case AppleReserved0047:
  948.                             key integer = $0047;
  949.                             Rect;
  950.  
  951.                         case FrameSameRRect:
  952.                             key integer = $0048;
  953.  
  954.                         case PaintSameRRect:
  955.                             key integer = $0049;
  956.  
  957.                         case EraseSameRRect:
  958.                             key integer = $004A;
  959.  
  960.                         case InvertSameRRect:
  961.                             key integer = $004B;
  962.  
  963.                         case FillSameRRect:
  964.                             key integer = $004C;
  965.  
  966.                         case AppleReserved004D:
  967.                             key integer = $004D;
  968.  
  969.                         case AppleReserved004E:
  970.                             key integer = $004E;
  971.  
  972.                         case AppleReserved004F:
  973.                             key integer = $004F;
  974.  
  975.                         case FrameOval:
  976.                             key integer = $0050;
  977.                             Rect;
  978.  
  979.                         case PaintOval:
  980.                             key integer = $0051;
  981.                             Rect;
  982.  
  983.                         case EraseOval:
  984.                             key integer = $0052;
  985.                             Rect;
  986.  
  987.                         case InvertOval:
  988.                             key integer = $0053;
  989.                             Rect;
  990.  
  991.                         case FillOval:
  992.                             key integer = $0054;
  993.                             Rect;
  994.  
  995.                         case AppleReserved0055:
  996.                             key integer = $0055;
  997.                             Rect;
  998.  
  999.                         case AppleReserved0056:
  1000.                             key integer = $0056;
  1001.                             Rect;
  1002.  
  1003.                         case AppleReserved0057:
  1004.                             key integer = $0057;
  1005.                             Rect;
  1006.                         case FrameSameOval:
  1007.                             key integer = $0058;
  1008.  
  1009.                         case PaintSameOval:
  1010.                             key integer = $0059;
  1011.  
  1012.                         case EraseSameOval:
  1013.                             key integer = $005A;
  1014.  
  1015.                         case InvertSameOval:
  1016.                             key integer = $005B;
  1017.  
  1018.                         case FillSameOval:
  1019.                             key integer = $005C;
  1020.  
  1021.                         case AppleReserved005D:
  1022.                             key integer = $005D;
  1023.  
  1024.                         case AppleReserved005E:
  1025.                             key integer = $005E;
  1026.  
  1027.                         case FrameArc:
  1028.                             key integer = $0060;
  1029.                             Rect;
  1030.                             integer;                /* startAngle */
  1031.                             integer;                /* arcAngle */
  1032.  
  1033.                         case PaintArc:
  1034.                             key integer = $0061;
  1035.                             Rect;
  1036.                             integer;                /* startAngle */
  1037.                             integer;                /* arcAngle */
  1038.  
  1039.                         case EraseArc:
  1040.                             key integer = $0062;
  1041.                             Rect;
  1042.                             integer;                /* startAngle */
  1043.                             integer;                /* arcAngle */
  1044.  
  1045.                         case InvertArc:
  1046.                             key integer = $0063;
  1047.                             Rect;
  1048.                             integer;                /* startAngle */
  1049.                             integer;                /* arcAngle */
  1050.  
  1051.                         case FillArc:
  1052.                             key integer = $0064;
  1053.                             Rect;
  1054.                             integer;                /* startAngle */
  1055.                             integer;                /* arcAngle */
  1056.  
  1057.                         case AppleReserved0065:
  1058.                             key integer = $0065;
  1059.                             Rect;
  1060.                             integer;                /* startAngle */
  1061.                             integer;                /* arcAngle */
  1062.  
  1063.                         case AppleReserved0066:
  1064.                             key integer = $0066;
  1065.                             Rect;
  1066.                             integer;                /* startAngle */
  1067.                             integer;                /* arcAngle */
  1068.  
  1069.                         case AppleReserved0067:
  1070.                             key integer = $0067;
  1071.                             Rect;
  1072.                             integer;                /* startAngle */
  1073.                             integer;                /* arcAngle */
  1074.  
  1075.                         case FrameSameArc:
  1076.                             key integer = $0068;
  1077.                             integer;                /* startAngle */
  1078.                             integer;                /* arcAngle */
  1079.  
  1080.                         case PaintSameArc:
  1081.                             key integer = $0069;
  1082.                             integer;                /* startAngle */
  1083.                             integer;                /* arcAngle */
  1084.  
  1085.                         case EraseSameArc:
  1086.                             key integer = $006A;
  1087.                             integer;                /* startAngle */
  1088.                             integer;                /* arcAngle */
  1089.  
  1090.                         case InvertSameArc:
  1091.                             key integer = $006B;
  1092.                             integer;                /* startAngle */
  1093.                             integer;                /* arcAngle */
  1094.  
  1095.                         case FillSameArc:
  1096.                             key integer = $006C;
  1097.                             integer;                /* startAngle */
  1098.                             integer;                /* arcAngle */
  1099.  
  1100.                         case AppleReserved006D:
  1101.                             key integer = $006D;
  1102.                             integer;                /* startAngle */
  1103.                             integer;                /* arcAngle */
  1104.  
  1105.                         case AppleReserved006E:
  1106.                             key integer = $006E;
  1107.                             integer;                /* startAngle */
  1108.                             integer;                /* arcAngle */
  1109.  
  1110.                         case AppleReserved006F:
  1111.                             key integer = $006F;
  1112.                             integer;                /* startAngle */
  1113.                             integer;                /* arcAngle */
  1114.                         case FramePoly:
  1115.                             key integer = $0070;
  1116.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1117.                             Rect;                    /* enclosing rectangle */
  1118.                             wide array PolyPoints { Point; };
  1119.  
  1120.                         case PaintPoly:
  1121.                             key integer = $0071;
  1122.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1123.                             Rect;                    /* enclosing rectangle */
  1124.                             wide array PolyPoints { Point; };
  1125.  
  1126.                         case ErasePoly:
  1127.                             key integer = $0072;
  1128.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1129.                             Rect;                    /* enclosing rectangle */
  1130.                             wide array PolyPoints { Point; };
  1131.  
  1132.                         case InvertPoly:
  1133.                             key integer = $0073;
  1134.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1135.                             Rect;                    /* enclosing rectangle */
  1136.                             wide array PolyPoints { Point; };
  1137.  
  1138.                         case FillPoly:
  1139.                             key integer = $0074;
  1140.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1141.                             Rect;                    /* enclosing rectangle */
  1142.                             wide array PolyPoints { Point; };
  1143.  
  1144.                         case AppleReserved0075:
  1145.                             key integer = $0075;
  1146.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1147.                             Rect;                    /* enclosing rectangle */
  1148.                             wide array PolyPoints { Point; };
  1149.  
  1150.                         case AppleReserved0076:
  1151.                             key integer = $0076;
  1152.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1153.                             Rect;                    /* enclosing rectangle */
  1154.                             wide array PolyPoints { Point; };
  1155.  
  1156.                         case AppleReserved0077:
  1157.                             key integer = $0077;
  1158.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1159.                             Rect;                    /* enclosing rectangle */
  1160.                             wide array PolyPoints { Point; };
  1161.  
  1162.                         case FrameSamePoly:
  1163.                             key integer = $0078;
  1164.  
  1165.                         case PaintSamePoly:
  1166.                             key integer = $0079;
  1167.  
  1168.                         case EraseSamePoly:
  1169.                             key integer = $007A;
  1170.  
  1171.                         case InvertSamePoly:
  1172.                             key integer = $007B;
  1173.  
  1174.                         case FillSamePoly:
  1175.                             key integer = $007C;
  1176.  
  1177.                         case AppleReserved007D:
  1178.                             key integer = $007D;
  1179.  
  1180.                         case AppleReserved007E:
  1181.                             key integer = $007E;
  1182.  
  1183.                         case AppleReserved007F:
  1184.                             key integer = $007F;
  1185.                         case FrameRgn:
  1186.                             key integer = $0080;
  1187.     FrameRgnStart2:            integer = (FrameRgnEnd2[$$ArrayIndex(OpCodes)] - FrameRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1188.                             Rect;                /* region’s enclosing rect */
  1189.                             hex string [$$Word(FrameRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1190.     FrameRgnEnd2:
  1191.                         case PaintRgn:
  1192.                             key integer = $0081;
  1193.     PaintRgnStart2:            integer = (PaintRgnEnd2[$$ArrayIndex(OpCodes)] - PaintRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1194.                             Rect;                /* region’s enclosing rect */
  1195.                             hex string [$$Word(PaintRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1196.     PaintRgnEnd2:
  1197.                         case EraseRgn:
  1198.                             key integer = $0082;
  1199.     EraseRgnStart2:            integer = (EraseRgnEnd2[$$ArrayIndex(OpCodes)] - EraseRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1200.                             Rect;                /* region’s enclosing rect */
  1201.                             hex string [$$Word(EraseRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1202.     EraseRgnEnd2:
  1203.                         case InvertRgn:
  1204.                             key integer = $0083;
  1205.     InvertRgnStart2:        integer = (InvertRgnEnd2[$$ArrayIndex(OpCodes)] - InvertRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1206.                             Rect;                /* region’s enclosing rect */
  1207.                             hex string [$$Word(InvertRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1208.     InvertRgnEnd2:
  1209.                         case FillRgn:
  1210.                             key integer = $0084;
  1211.     FillRgnStart2:            integer = (FillRgnEnd2[$$ArrayIndex(OpCodes)] - FillRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1212.                             Rect;                /* region’s enclosing rect */
  1213.                             hex string [$$Word(FillRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1214.     FillRgnEnd2:
  1215.                         case AppleReserved0085:
  1216.                             key integer = $0085;
  1217.     AppleReserved0085Start:integer = (AppleReserved0085End[$$ArrayIndex(OpCodes)] - AppleReserved0085Start[$$ArrayIndex(OpCodes)]) >> 3;
  1218.                             Rect;                /* region’s enclosing rect */
  1219.                             hex string [$$Word(AppleReserved0085Start[$$ArrayIndex(OpCodes)]) - 10];
  1220.     AppleReserved0085End:
  1221.                         case AppleReserved0086:
  1222.                             key integer = $0086;
  1223.     AppleReserved0086Start:    integer = (AppleReserved0086End[$$ArrayIndex(OpCodes)] - AppleReserved0086Start[$$ArrayIndex(OpCodes)]) >> 3;
  1224.                             Rect;                /* region’s enclosing rect */
  1225.                             hex string [$$Word(AppleReserved0086Start[$$ArrayIndex(OpCodes)]) - 10];
  1226.     AppleReserved0086End:
  1227.                         case AppleReserved0087:
  1228.                             key integer = $0087;
  1229.     AppleReserved0087Start:    integer = (AppleReserved0087End[$$ArrayIndex(OpCodes)] - AppleReserved0087Start[$$ArrayIndex(OpCodes)]) >> 3;
  1230.                             Rect;                /* region’s enclosing rect */
  1231.                             hex string [$$Word(AppleReserved0087Start[$$ArrayIndex(OpCodes)]) - 10];
  1232.     AppleReserved0087End:
  1233.                         case FrameSameRgn:
  1234.                             key integer = $0088;
  1235.  
  1236.                         case PaintSameRgn:
  1237.                             key integer = $0089;
  1238.  
  1239.                         case EraseSameRgn:
  1240.                             key integer = $008A;
  1241.  
  1242.                         case InvertSameRgn:
  1243.                             key integer = $008B;
  1244.  
  1245.                         case FillSameRgn:
  1246.                             key integer = $008C;
  1247.  
  1248.                         case AppleReserved008D:
  1249.                             key integer = $008D;
  1250.  
  1251.                         case AppleReserved008E:
  1252.                             key integer = $008E;
  1253.  
  1254.                         case AppleReserved008F:
  1255.                             key integer = $008F;
  1256.  
  1257.                         case BitsRect:
  1258.                             key integer = $0090;
  1259.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1260.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1261.     BitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1262.     BitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1263.                             integer;                                                /* pixMap vers number    */
  1264.                             integer    unpacked;                                        /* Packing format        */
  1265.                             unsigned longint;                                        /* Size of pixel data    */
  1266.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1267.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1268.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1269.                             integer;                                                /* # bits in pixel        */
  1270.                             integer;                                                /* # components in pixel*/
  1271.                             integer;                                                /* # bits per field        */
  1272.                             unsigned longint;                                        /* Offset to next plane    */
  1273.                             unsigned longint;                                        /* Offset to color table*/
  1274.                             fill long;                                                /* Reserved                */
  1275.                             /* Color Table */
  1276.                             unsigned hex longint;                                    /* ctSeed                */
  1277.                             integer;                                                /* ctFlags                */
  1278.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1279.                             wide array ColorSpec {
  1280.                                     integer;                                        /* value                */
  1281.                                     unsigned integer;                                /* RGB:    red                */
  1282.                                     unsigned integer;                                /*        green            */
  1283.                                     unsigned integer;                                /*        blue            */
  1284.                             };
  1285.                             Rect;                        /* srcRect */
  1286.                             Rect;                        /* destRect */
  1287.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1288.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1289.                                         patCopy, patOr, patXor, patBic,
  1290.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1291.                                         blend = 32, addPin, addOver, subPin,
  1292.                                         adMax = 37, subOver, adMin;
  1293.     BitsRectBits:            hex string [$$BitField(BitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1294.                                         ($$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1295.                                         - $$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1296.  
  1297.                         case BitsRgn:
  1298.                             key integer = $0091;
  1299.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1300.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1301.     BitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1302.     BitsRgnBounds2:            rect;                                                    /* Bitmap bounds        */
  1303.                             integer;                                                /* pixMap vers number    */
  1304.                             integer    unpacked;                                        /* Packing format        */
  1305.                             unsigned longint;                                        /* Size of pixel data    */
  1306.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1307.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1308.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1309.                             integer;                                                /* # bits in pixel        */
  1310.                             integer;                                                /* # components in pixel*/
  1311.                             integer;                                                /* # bits per field        */
  1312.                             unsigned longint;                                        /* Offset to next plane    */
  1313.                             unsigned longint;                                        /* Offset to color table*/
  1314.                             fill long;                                                /* Reserved                */
  1315.                             /* Color Table */
  1316.                             unsigned hex longint;                                    /* ctSeed                */
  1317.                             integer;                                                /* ctFlags                */
  1318.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1319.                             wide array ColorSpec {
  1320.                                     integer;                                        /* value                */
  1321.                                     unsigned integer;                                /* RGB:    red                */
  1322.                                     unsigned integer;                                /*        green            */
  1323.                                     unsigned integer;                                /*        blue            */
  1324.                             };
  1325.                             Rect;                        /* srcRect */
  1326.                             Rect;                        /* destRect */
  1327.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1328.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1329.                                         patCopy, patOr, patXor, patBic,
  1330.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1331.                                         blend = 32, addPin, addOver, subPin,
  1332.                                         adMax = 37, subOver, adMin;
  1333.     BitsRgnStart2:            integer = (BitsRgnEnd2[$$ArrayIndex(OpCodes)] - BitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1334.                             Rect;                /* region’s enclosing rect */
  1335.                             hex string [$$Word(BitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1336.     BitsRgnEnd2:            hex string [$$PackedSize(BitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1337.                                         $$BitField(BitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1338.                                         ($$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1339.                                         - $$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1340.  
  1341.                         case AppleReserved0092:
  1342.                             key integer = $0092;
  1343.     AppleReserved0092Start:    unsigned integer = (AppleReserved0092End[$$ArrayIndex(OpCodes)] - AppleReserved0092Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1344.                             hex string [$$Word(AppleReserved0092Start[$$ArrayIndex(OpCodes)])];
  1345.     AppleReserved0092End:
  1346.                         case AppleReserved0093:
  1347.                             key integer = $0093;
  1348.     AppleReserved0093Start:    unsigned integer = (AppleReserved0093End[$$ArrayIndex(OpCodes)] - AppleReserved0093Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1349.                             hex string [$$Word(AppleReserved0093Start[$$ArrayIndex(OpCodes)])];
  1350.     AppleReserved0093End:
  1351.                         case AppleReserved0094:
  1352.                             key integer = $0094;
  1353.     AppleReserved0094Start:    unsigned integer = (AppleReserved0094End[$$ArrayIndex(OpCodes)] - AppleReserved0094Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1354.                             hex string [$$Word(AppleReserved0094Start[$$ArrayIndex(OpCodes)])];
  1355.     AppleReserved0094End:
  1356.                         case AppleReserved0095:
  1357.                             key integer = $0095;
  1358.     AppleReserved0095Start:    unsigned integer = (AppleReserved0095End[$$ArrayIndex(OpCodes)] - AppleReserved0095Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1359.                             hex string [$$Word(AppleReserved0095Start[$$ArrayIndex(OpCodes)])];
  1360.     AppleReserved0095End:
  1361.                         case AppleReserved0096:
  1362.                             key integer = $0096;
  1363.     AppleReserved0096Start:    unsigned integer = (AppleReserved0096End[$$ArrayIndex(OpCodes)] - AppleReserved0096Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1364.                             hex string [$$Word(AppleReserved0096Start[$$ArrayIndex(OpCodes)])];
  1365.     AppleReserved0096End:
  1366.                         case AppleReserved0097:
  1367.                             key integer = $0097;
  1368.     AppleReserved0097Start:    unsigned integer = (AppleReserved0097End[$$ArrayIndex(OpCodes)] - AppleReserved0097Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1369.                             hex string [$$Word(AppleReserved0097Start[$$ArrayIndex(OpCodes)])];
  1370.     AppleReserved0097End:
  1371.                         case PackBitsRect:
  1372.                             key integer = $0098;
  1373.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1374.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1375.     PackBitsRectpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1376.     PackBitsRectBounds2:    rect;                                                    /* Bitmap bounds        */
  1377.                             integer;                                                /* pixMap vers number    */
  1378.                             integer    unpacked;                                        /* Packing format        */
  1379.                             unsigned longint;                                        /* Size of pixel data    */
  1380.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1381.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1382.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1383.                             integer;                                                /* # bits in pixel        */
  1384.                             integer;                                                /* # components in pixel*/
  1385.                             integer;                                                /* # bits per field        */
  1386.                             unsigned longint;                                        /* Offset to next plane    */
  1387.                             unsigned longint;                                        /* Offset to color table*/
  1388.                             fill long;                                                /* Reserved                */
  1389.                             /* Color Table */
  1390.                             unsigned hex longint;                                    /* ctSeed                */
  1391.                             integer;                                                /* ctFlags                */
  1392.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1393.                             wide array ColorSpec {
  1394.                                     integer;                                        /* value                */
  1395.                                     unsigned integer;                                /* RGB:    red                */
  1396.                                     unsigned integer;                                /*        green            */
  1397.                                     unsigned integer;                                /*        blue            */
  1398.                             };
  1399.                             Rect;                        /* srcRect */
  1400.                             Rect;                        /* destRect */
  1401.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1402.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1403.                                         patCopy, patOr, patXor, patBic,
  1404.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1405.                                         blend = 32, addPin, addOver, subPin,
  1406.                                         adMax = 37, subOver, adMin;
  1407.     PackBitsRectBits:        hex string [$$PackedSize(PackBitsRectBits[$$ArrayIndex(OpCodes)],
  1408.                                         $$BitField(PackBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1409.                                         ($$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1410.                                         - $$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1411.                         case PackBitsRgn:
  1412.                             key integer = $0099;
  1413.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1414.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1415.     PackBitsRgnpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1416.     PackBitsRgnBounds2:    rect;                                                        /* Bitmap bounds        */
  1417.                             integer;                                                /* pixMap vers number    */
  1418.                             integer    unpacked;                                        /* Packing format        */
  1419.                             unsigned longint;                                        /* Size of pixel data    */
  1420.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1421.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1422.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1423.                             integer;                                                /* # bits in pixel        */
  1424.                             integer;                                                /* # components in pixel*/
  1425.                             integer;                                                /* # bits per field        */
  1426.                             unsigned longint;                                        /* Offset to next plane    */
  1427.                             unsigned longint;                                        /* Offset to color table*/
  1428.                             fill long;                                                /* Reserved                */
  1429.                             /* Color Table */
  1430.                             unsigned hex longint;                                    /* ctSeed                */
  1431.                             integer;                                                /* ctFlags                */
  1432.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1433.                             wide array ColorSpec {
  1434.                                     integer;                                        /* value                */
  1435.                                     unsigned integer;                                /* RGB:    red                */
  1436.                                     unsigned integer;                                /*        green            */
  1437.                                     unsigned integer;                                /*        blue            */
  1438.                             };
  1439.                             Rect;                        /* srcRect */
  1440.                             Rect;                        /* destRect */
  1441.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1442.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1443.                                         patCopy, patOr, patXor, patBic,
  1444.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1445.                                         blend = 32, addPin, addOver, subPin,
  1446.                                         adMax = 37, subOver, adMin;
  1447.     PackBitsRgnStart2:        integer = (PackBitsRgnEnd2[$$ArrayIndex(OpCodes)] - PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1448.                             Rect;                /* region’s enclosing rect */
  1449.                             hex string [$$Word(PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1450.     PackBitsRgnEnd2:        hex string [$$PackedSize(PackBitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1451.                                         $$BitField(PackBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1452.                                         ($$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1453.                                         - $$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1454.  
  1455.                         case DirectBitsRect:
  1456.                             key integer = $009A;
  1457.     DirectBitsRectStart:    unsigned integer = (DirectBitsRectEnd[$$ArrayIndex(OpCodes)] - DirectBitsRectStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1458.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1459.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1460.     DirectBitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1461.     DirectBitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1462.                             integer;                                                /* pixMap vers number    */
  1463.                             integer    unpacked;                                        /* Packing format        */
  1464.                             unsigned longint;                                        /* Size of pixel data    */
  1465.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1466.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1467.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1468.                             integer;                                                /* # bits in pixel        */
  1469.                             integer;                                                /* # components in pixel*/
  1470.                             integer;                                                /* # bits per field        */
  1471.                             unsigned longint;                                        /* Offset to next plane    */
  1472.                             unsigned longint;                                        /* Offset to color table*/
  1473.                             fill long;                                                /* Reserved                */
  1474.                             /* Color Table */
  1475.                             unsigned hex longint;                                    /* ctSeed                */
  1476.                             integer;                                                /* ctFlags                */
  1477.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1478.                             wide array ColorSpec {
  1479.                                     integer;                                        /* value                */
  1480.                                     unsigned integer;                                /* RGB:    red                */
  1481.                                     unsigned integer;                                /*        green            */
  1482.                                     unsigned integer;                                /*        blue            */
  1483.                             };
  1484.                             Rect;                        /* srcRect */
  1485.                             Rect;                        /* destRect */
  1486.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1487.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1488.                                         patCopy, patOr, patXor, patBic,
  1489.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1490.                                         blend = 32, addPin, addOver, subPin,
  1491.                                         adMax = 37, subOver, adMin;
  1492.     DirectBitsRectBits:        hex string [$$BitField(DirectBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1493.                                         ($$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1494.                                         - $$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1495.     DirectBitsRectEnd:
  1496.                         case DirectBitsRgn:
  1497.                             key integer = $009B;
  1498.     DirectBitsRgnStart:    unsigned integer = (DirectBitsRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1499.                             unsigned bitstring[1] = 1;                                    /* New pixMap flag        */
  1500.                             unsigned bitstring[2] = 0;                                    /* Must be 0            */
  1501.     DirectBitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1502.     DirectBitsRgnBounds2:        rect;                                                    /* Bitmap bounds        */
  1503.                             integer;                                                    /* pixMap vers number    */
  1504.                             integer    unpacked;                                            /* Packing format        */
  1505.                             unsigned longint;                                            /* Size of pixel data    */
  1506.                             unsigned hex longint;                                        /* h. resolution (ppi) (fixed) */
  1507.                             unsigned hex longint;                                        /* v. resolution (ppi) (fixed) */
  1508.                             integer            chunky, chunkyPlanar, planar;                /* Pixel storage format    */
  1509.                             integer;                                                    /* # bits in pixel        */
  1510.                             integer;                                                    /* # components in pixel*/
  1511.                             integer;                                                    /* # bits per field        */
  1512.                             unsigned longint;                                            /* Offset to next plane    */
  1513.                             unsigned longint;                                            /* Offset to color table*/
  1514.                             fill long;                                                    /* Reserved                */
  1515.                             /* Color Table */
  1516.                             unsigned hex longint;                                        /* ctSeed                */
  1517.                             integer;                                                    /* ctFlags                */
  1518.                             integer = $$Countof(ColorSpec) - 1;                            /* ctSize                */
  1519.                             wide array ColorSpec {
  1520.                                     integer;                                            /* value                */
  1521.                                     unsigned integer;                                    /* RGB:    red                */
  1522.                                     unsigned integer;                                    /*        green            */
  1523.                                     unsigned integer;                                    /*        blue            */
  1524.                             };
  1525.                             Rect;                                                        /* srcRect */
  1526.                             Rect;                                                        /* destRect */
  1527.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1528.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1529.                                         patCopy, patOr, patXor, patBic,
  1530.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1531.                                         blend = 32, addPin, addOver, subPin,
  1532.                                         adMax = 37, subOver, adMin;
  1533.     DirectBitsMaskRgnStart:    integer = (DirectBitsMaskRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  1534.                             Rect;                                                    /* region’s enclosing rect */
  1535.                             hex string [$$Word(DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  1536.     DirectBitsMaskRgnEnd:
  1537.     DirectBitsRgnBits:        hex string [$$BitField(DirectBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1538.                                         ($$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1539.                                         - $$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1540.     DirectBitsRgnEnd:
  1541.  
  1542.                         case AppleReserved009C:
  1543.                             key integer = $009C;
  1544.     AppleReserved009CStart:    unsigned integer = (AppleReserved009CEnd[$$ArrayIndex(OpCodes)] - AppleReserved009CStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1545.                             hex string [$$Word(AppleReserved009CStart[$$ArrayIndex(OpCodes)])];
  1546.     AppleReserved009CEnd:
  1547.                         case AppleReserved009D:
  1548.                             key integer = $009D;
  1549.     AppleReserved009DStart:    unsigned integer = (AppleReserved009DEnd[$$ArrayIndex(OpCodes)] - AppleReserved009DStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1550.                             hex string [$$Word(AppleReserved009DStart[$$ArrayIndex(OpCodes)])];
  1551.     AppleReserved009DEnd:
  1552.                         case AppleReserved009E:
  1553.                             key integer = $009E;
  1554.     AppleReserved009EStart:    unsigned integer = (AppleReserved009EEnd[$$ArrayIndex(OpCodes)] - AppleReserved009EStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1555.                             hex string [$$Word(AppleReserved009EStart[$$ArrayIndex(OpCodes)])];
  1556.     AppleReserved009EEnd:
  1557.                         case AppleReserved009F:
  1558.                             key integer = $009F;
  1559.     AppleReserved009FStart:    unsigned integer = (AppleReserved009FEnd[$$ArrayIndex(OpCodes)] - AppleReserved009FStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1560.                             hex string [$$Word(AppleReserved009FStart[$$ArrayIndex(OpCodes)])];
  1561.     AppleReserved009FEnd:
  1562.                         case ShortComment:
  1563.                             key integer = $00A0;
  1564.                             integer;                            /* comment kind */
  1565.                         case LongComment:
  1566.                             key integer = $00A1;
  1567.                             integer;                            /* comment kind */
  1568.     LongCommentStart2:        integer = (LongCommentEnd2[$$ArrayIndex(OpCodes)] - LongCommentStart2[$$ArrayIndex(OpCodes)] - 16) >> 3;
  1569.                             hex string [$$Word(LongCommentStart2[$$ArrayIndex(OpCodes)])];
  1570.     LongCommentEnd2:
  1571.                         case OpEndPic:
  1572.                             key integer = $00FF;
  1573.  
  1574.                         case HeaderOp:
  1575.                             key integer = $0C00;
  1576. #if PICT_RezTemplateVersion == 1
  1577.                             longint Version2 = -1;
  1578.                             /* Fixed point bounding box */
  1579.                             unsigned hex longint;
  1580.                             unsigned hex longint;
  1581.                             unsigned hex longint;
  1582.                             unsigned hex longint;
  1583.                             longint Version2 = -1;                    /* Reserved    */
  1584. #else
  1585.                             switch    {
  1586.                                 case StandardVersion2:
  1587.                                     key    integer = -1;
  1588.                                     integer = -1;
  1589.                                     unsigned hex longint;
  1590.                                     unsigned hex longint;
  1591.                                     unsigned hex longint;
  1592.                                     unsigned hex longint;
  1593.                                     fill long;                        /* Reserved */
  1594.                                 case ExtendedVersion2:
  1595.                                     key integer = -2;
  1596.                                     fill word;
  1597.                                     unsigned hex longint;            /* hRes */
  1598.                                     unsigned hex longint;            /* vRes */
  1599.                                     Rect;                            /* SrcRect */
  1600.                                     fill long;                        /* Reserved */
  1601.                             };
  1602. #endif
  1603.                     };
  1604.                     align word;
  1605.                 };
  1606.         };
  1607.     endOfPict:
  1608. #endif
  1609. };
  1610.  
  1611. #endif __PICT_R__
  1612.  
  1613.  
  1614. #endif /* __PICTUTILS_R__ */
  1615.  
  1616.